import BaseModel from './BaseModel'
import API from '@/api/apis'
import { DateFormat } from 'yb-tool'
import Filters from "../../utils/filters";

/**
 * 学习经验模型
 */
class StudyModel extends BaseModel {
  // 构造方法
  constructor() {
    super()
    /**
     * 标题
     * @type {string}
     */
    this.title = ''
    /**
     * 创建时间
     * @type {Date}
     */
    this.date = null
    this.dateStr = ''
    /**
     * 类型
     * @type {string}
     */
    this.type = ''
    /**
     * 内容
     * @type {string}
     */
    this.content = ''
    /**
     * 描述
     * @type {string}
     */
    this.describe = ''
    /**
     * 封面
     * @type {string}
     */
    this.pic = ''

    /**
     * ====================== URL 相关 ====================================
     */
    /**
     * 获取详情数据的URL
     * @type {String}
     */
    this.detailUrl = API.study.detail
    /**
     * 删除数据的URL
     * @type {String}
     */
    this.removeUrl = API.study.remove
    /**
     * 添加数据的URL
     * @type {String}
     */
    this.addUrl = API.study.add
    /**
     * 更新数据的URL
     * @type {String}
     */
    this.updateUrl = API.study.update
    /**
     * 添到回收站的URL
     * @type {String}
     */
    this.dustbinPushUrl = API.study.dustbinPush
    /**
     * 回收站还原的URL
     * @type {String}
     */
    this.dustbinPopUrl = API.study.dustbinPop
    /**
     * 添加修改数据的KEY数组
     * @type {Array}
     */
    this.addOrUpdateKeyArr = ['title', 'type', 'content', 'describe', 'pic']
  }

  /* ----- 获取指定图片大小 -------*/
  /**
   * 手机端我的界面图片
   * @returns {*|string}
   */
  get mMePic() {
    return Filters.imageFill(this.pic, 3.2, 3.2, 'rem')
  }

  /**
   * 手机学习列表
   * @returns {*|string}
   */
  get mStudyListPic() {
    return Filters.imageFill(this.pic, 1.6, 1.6, 'rem')
  }

  /**
   * 手机端学习详情图片
   * @returns {*|*|string}
   */
  get mStudyDetailPic() {
    return Filters.imageLfit(this.pic, 7.5, 0, 'rem')
  }

  /**
   * PC端我的界面图片
   * @returns {*|string}
   */
  get pcMePic() {
    return Filters.imageFill(this.pic, 200, 200)
  }

  /**
   * PC端学习列表
   * @returns {*|string}
   */
  get pcStudyListPic() {
    return Filters.imageFill(this.pic, 100, 100)
  }

  /**
   * 覆盖父类方法，
   * @param json 要设置的数据
   */
  setDataWithJson(json) {
    super.setDataWithJson(json)
    this.dateStr = DateFormat(this.date)
  }
}

/**
 * 列表加载URL
 * @type {String}
 */
StudyModel.listUrl = API.study.all
/**
 * 不同类型的URL
 * @type {String}
 */
StudyModel.typesUrl = API.study.typeDistinct
/**
 * 获取所有回收站数据
 * @type {String}
 */
StudyModel.dustbinAllUrl = API.study.dustbinAll

export default StudyModel
